package com.wsd.smartcarwasher.util;

import org.apache.commons.lang3.StringUtils;
import org.springframework.ui.ModelMap;

import java.util.Map;

/**
 * JSON统一返回数据格式
 * author geekcattle
 * date 2016/11/23 0023 下午 14:53
 */
public class ReturnUtil {

    public static ModelMap Success(String msg, Object obj, String referer) {
        msg = StringUtils.isEmpty(msg) || StringUtils.isBlank(msg) ? "操作成功" : msg;
        ModelMap mp = new ModelMap();
        mp.put("status", 1);
        mp.put("state", "success");
        mp.put("msg", msg);
        mp.put("referer", referer);
        mp.put("result", obj);
        return mp;
    }

    public static ModelMap SuccessWash(String msg,String orderSn,String machineId,String washType) {
        msg = StringUtils.isEmpty(msg) || StringUtils.isBlank(msg) ? "操作成功" : msg;
        ModelMap mp = new ModelMap();
        mp.put("status", 1);
        mp.put("washStatus", 1);
        mp.put("state", "success");
        mp.put("msg", msg);
        mp.put("orderSn", orderSn);
        mp.put("machineId", machineId);
        mp.put("washType", washType);
        return mp;
    }
    public static ModelMap ErrorWash(String msg) {
        msg = StringUtils.isEmpty(msg) || StringUtils.isBlank(msg) ? "操作成功" : msg;
        ModelMap mp = new ModelMap();
        mp.put("status", 1);
        mp.put("washStatus", 0);
        mp.put("state", "success");
        mp.put("msg", msg);
        return mp;
    }


    public static ModelMap Success(String msg, Object obj) {
        msg = StringUtils.isEmpty(msg) || StringUtils.isBlank(msg) ? "操作成功" : msg;
        ModelMap mp = new ModelMap();
        mp.put("status", 1);
        mp.put("state", "success");
        mp.put("msg", msg);
        mp.put("referer", null);
        mp.put("result", obj);
        mp.put("code",200);
        return mp;
    }

    public static ModelMap Success(String msg, Object obj, Map map) {
        msg = StringUtils.isEmpty(msg) || StringUtils.isBlank(msg) ? "操作成功" : msg;
        ModelMap mp = new ModelMap();
        mp.put("status", 1);
        mp.put("state", "success");
        mp.put("msg", msg);
        mp.put("referer", null);
        mp.put("result", obj);
        mp.put("mapInfo", map);
        mp.put("code",200);
        return mp;
    }

    public static ModelMap Success(String msg) {
        msg = StringUtils.isEmpty(msg) || StringUtils.isBlank(msg) ? "操作成功" : msg;
        ModelMap mp = new ModelMap();
        mp.put("status", 1);
        mp.put("state", "success");
        mp.put("msg", msg);
        mp.put("referer", null);
        mp.put("result", null);
        mp.put("code",200);
        return mp;
    }


    public static ModelMap SuccessMachineName(String msg,String machineName) {
        msg = StringUtils.isEmpty(msg) || StringUtils.isBlank(msg) ? "操作成功" : msg;
        ModelMap mp = new ModelMap();
        mp.put("status", 1);
        mp.put("state", "success");
        if(!StringUtil.isNullOrEmpty(machineName))
        {
            mp.put("machineName", machineName);
        }
        mp.put("msg", msg);
        mp.put("referer", null);
        mp.put("result", null);

        return mp;
    }


    public static ModelMap socketSuccess(String msg) {
        msg = StringUtils.isEmpty(msg) || StringUtils.isBlank(msg) ? "操作成功" : msg;
        ModelMap mp = new ModelMap();
        mp.put("status", 1);
        mp.put("state", "success");
        mp.put("wsstatus", "2");
        mp.put("msg", msg);
        mp.put("referer", null);
        mp.put("result", null);
        return mp;
    }

    public static ModelMap socketError(String msg) {
        msg = StringUtils.isEmpty(msg) || StringUtils.isBlank(msg) ? "操作失败" : msg;
        ModelMap mp = new ModelMap();
        mp.put("status", 0);
        mp.put("state", "error");
        mp.put("wsstatus", "2");
        mp.put("msg", msg);
        mp.put("referer", null);
        mp.put("result", null);
        return mp;
    }

    public static ModelMap Error(String msg, Object obj, String referer) {
        msg = StringUtils.isEmpty(msg) || StringUtils.isBlank(msg) ? "操作失败" : msg;
        ModelMap mp = new ModelMap();
        mp.put("status", 0);
        mp.put("state", "error");
        mp.put("msg", msg);
        mp.put("referer", referer);
        mp.put("result", obj);
        mp.put("code", 702);
        return mp;
    }

    public static ModelMap Error(String msg, Object obj) {
        msg = StringUtils.isEmpty(msg) || StringUtils.isBlank(msg) ? "操作失败" : msg;
        ModelMap mp = new ModelMap();
        mp.put("status", 0);
        mp.put("state", "error");
        mp.put("msg", msg);
        mp.put("referer", null);
        mp.put("result", obj);
        mp.put("code", 702);
        return mp;
    }

    public static ModelMap Error(String msg) {
        msg = StringUtils.isEmpty(msg) || StringUtils.isBlank(msg) ? "操作失败" : msg;
        ModelMap mp = new ModelMap();
        mp.put("status", 0);
        mp.put("state", "error");
        mp.put("msg", msg);
        mp.put("referer", null);
        mp.put("result", null);
        mp.put("code", 702);
        return mp;
    }

    public static ModelMap Errorone(String msg,String machineName) {
        msg = StringUtils.isEmpty(msg) || StringUtils.isBlank(msg) ? "操作失败" : msg;
        ModelMap mp = new ModelMap();
        mp.put("status", 0);
        mp.put("state", "error");
        if(!StringUtil.isNullOrEmpty(machineName))
        {
            mp.put("machineName", machineName);
        }
        mp.put("msg", msg);
        mp.put("referer", null);
        mp.put("result", null);
        mp.put("code", 200);
        return mp;
    }

    public static ModelMap ErrorMoblie(String msg) {
        msg = StringUtils.isEmpty(msg) || StringUtils.isBlank(msg) ? "操作失败" : msg;
        ModelMap mp = new ModelMap();
        mp.put("status", "none");
        mp.put("state", "error");
        mp.put("msg", msg);
        mp.put("referer", null);
        mp.put("result", msg);
        mp.put("code", 200);
        return mp;
    }

//    public static ModelMap Errorlogin(String msg) {
//        msg = StringUtils.isEmpty(msg) || StringUtils.isBlank(msg) ? "操作失败" : msg;
//        ModelMap mp = new ModelMap();
//
//        mp.put("status", 0);
//        mp.put("state", "error");
//        mp.put("msg", msg);
//        mp.put("referer", null);
//        mp.put("result", null);
//        return mp;
//    }

    public static ModelMap Error(String msg,int status) {
        msg = StringUtils.isEmpty(msg) || StringUtils.isBlank(msg) ? "操作失败" : msg;
        ModelMap mp = new ModelMap();
        mp.put("status", status);
        mp.put("state", "error");
        mp.put("msg", msg);
        mp.put("referer", null);
        mp.put("result", null);
        mp.put("code", 702);
        return mp;
    }
}
